package com.ficus.road.maintain.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.ficus.road.maintain.util.excel.CellDoubleConverter;
import com.ficus.road.maintain.util.excel.CellIntegerConverter;
import com.ficus.road.maintain.util.excel.CellStyleConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author xiawen yang
 * @date 2021/11/15 下午7:16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ChecklistOfCar {
    @ExcelProperty(value = "日期")
    private String date;

    @ExcelProperty(value = "车辆id")
    private String carId;

    @ExcelProperty(value = "车牌")
    private String plateNo;

    @ExcelProperty(value = "版本号")
    private String version;

    @ExcelProperty(value = "sdk端是否出车")
    @CellIntegerConverter
    private Integer sdkCarStatus;

    @ExcelProperty(value = "云端是否出车")
    @CellIntegerConverter
    private Integer cloudCarStatus;

    @ExcelProperty(value = "出车状态是否异常")
    @CellIntegerConverter
    @CellStyleConverter
    private Integer isCarOutStatusError;

    @ExcelProperty("GNSS是否异常")
    @CellIntegerConverter
    @CellStyleConverter
    private Integer isGNSSError;

    @ExcelProperty("GNSS异常次数")
    private Integer gNSSErrorTimes;

    @ExcelProperty("雷达是否异常")
    @CellIntegerConverter
    @CellStyleConverter
    private Integer isLidarError;

    @ExcelProperty("雷达异常次数")
    private Integer lidarErrorTimes;

    @ExcelProperty("摄像头是否异常")
    @CellIntegerConverter
    @CellStyleConverter
    private Integer isCameraError;

    @ExcelProperty("摄像头异常次数")
    private Integer cameraErrorTimes;

    @ExcelProperty("数据盘剩余容量")
    @CellDoubleConverter
    @CellStyleConverter
    private Double storageDiskCap;

    @ExcelProperty(value = "出车开始时间")
    private String startTime;

    @ExcelProperty(value = "出车结束时间")
    private String endTime;

    @ExcelProperty(value = "sdk端出车时长/m")
    private Integer sdkCarTotalMinute;

    @ExcelProperty(value = "云端出车时长/m")
    private Integer cloudCarTotalMinute;

    @ExcelProperty(value = "行驶里程")
    private Double miles;

    @ExcelProperty(value = "merge病害数")
    private Long mergeNum;

    @ExcelProperty(value = "发现新病害数")
    private Long hitNum;

    @ExcelProperty(value = "未审核数")
    private Long uncheckHitNum;

    @ExcelProperty(value = "审核率")
    private Double checkRate;

    @ExcelProperty(value = "推送中海数")
    private Long pushThirdNum;

    @ExcelProperty(value = "审核通过数")
    private Long passHitNum;

    @ExcelProperty(value = "通过率")
    private Double passRate;

    @ExcelProperty(value = "总病害数")
    private Long totalNewHitNum;

    @ExcelProperty(value = "总审核通过数")
    private Long totalPassHitNum;
}
